package model

import (
	"smart-health-platforms/config"
	"time"
)

// 用户海报表
type DistributionPosters struct {
	Id         uint32    `gorm:"column:id;type:int UNSIGNED;comment:海报唯一id;primaryKey;not null;" json:"id"`               // 海报唯一id
	UserId     uint32    `gorm:"column:user_id;type:int UNSIGNED;comment:用户id;not null;" json:"user_id"`                  // 用户id
	PosterName string    `gorm:"column:poster_name;type:varchar(50);comment:海报名称;not null;" json:"poster_name"`           // 海报名称
	PosterUrl  string    `gorm:"column:poster_url;type:varchar(500);comment:海报url;not null;" json:"poster_url"`           // 海报url
	Status     uint32    `gorm:"column:status;type:int UNSIGNED;comment:海报状态: 1有效 2无效;not null;default:1;" json:"status"` // 海报状态: 1有效 2无效
	CreatedAt  time.Time `gorm:"column:created_at;type:datetime(3);not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"`
	UpdatedAt  time.Time `gorm:"column:updated_at;type:datetime(3);default:NULL;" json:"updated_at"`
}

// 设置与数据库表的映射关系
func (dp *DistributionPosters) TableName() string {
	return "distribution_posters"
}

// 添加用户海报基本信息
func (dp *DistributionPosters) Create() error {
	return config.DB.Create(dp).Error
}

// 添加用户海报URL
func (dp *DistributionPosters) Update() error {
	return config.DB.Model(&dp).
		Where("user_id = ?", dp.UserId).
		Update("poster_url", dp.PosterUrl).Error
}

// 海报列表
func (dp *DistributionPosters) List() (posterList []*DistributionPosters, err error) {
	err = config.DB.Model(&dp).Find(&posterList).Error
	return
}
